/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ChatNI;


import common.*;
import java.util.Observable;

/**
 * ChatNI
 * Class performs the network's interactions
 * This is the Observer of the ModelMessOut
 * @author Duy Duc , Metangmo
 */
public abstract class ChatNI implements java.util.Observer{

    /**
     * send:
     * An abstract function for message sending 
     * @param message
     *        Sent message for the reseau 
     */
    public abstract void send (Message message);

    /**
     * receive:
     * An abstract function for message receiving
     * @return
     *        Received message from the reseau 
     */
    public abstract Message receive ();

    /**
     * update:
     * An abstract function for receiving the updates from the ModelMessOut
     * @param o
     *        Model observed by ChatNI 
     * @param obj
     *        Sent object from the Model to ChatNI  
     */
     public abstract void update(Observable o, Object obj);
    
}
